<?php
/*
Plugin Name: CMP Post Sidebar
Description: hiển thị bài viết bên sidebar
Author: Phương CM
*/

add_action('widgets_init', 'post_sidebar');
function post_sidebar(){
	register_widget('Post_sidebar');//class bên dưới
}

class Post_sidebar extends WP_Widget {

	function Post_sidebar() {
		$wget_options = array(
			'classname' => 'post_sidebar',
			'description' => 'Widget hiển thị các bài viết trên sidebar'
		);
		$this->WP_Widget('post_sidebar_id', 'CMP Post sidebar', $wget_options);

	}

	function form( $instance ) {

		$default = array(
			'title' => '',
			'number' => '5',
			'orderby' => 'xemnhieu'
		);

		$options = array(
			'xemnhieu' => 'Xem nhiều nhất',
			'moinhat' => 'Bài viết mới'
		);

		$instance = wp_parse_args( (array) $instance, $default );
		$title = esc_attr($instance['title']);
		$number = esc_attr($instance['number']);
		$orderby = esc_attr($instance['orderby']);

		echo '<label>Nhập tiêu đề</label><p><input type="text" class="widefat" name="'.$this->get_field_name('title').'" value="'.$title.'"/></p>';
		echo '<label>Số bài viết</label><p><input type="text" class="widefat" name="'.$this->get_field_name('number').'" value="'.$number.'"/></p>';
		$select = '<select name='.$this->get_field_name('orderby').'>';
		foreach($options as $k => $v){
			if($k == $orderby)
				$select .= '<option selected="selected" value="'.$k.'">'.$v.'</option>';
			else
				$select .= '<option value="'.$k.'">'.$v.'</option>';
		}
		$select .= '</select>';
		echo '<label>Sắp xếp</label><p>'.$select.'</p>';
	}

	function update( $new_instance, $old_instance ) {

		$instance = $old_instance;
		$instance['title'] = strip_tags($new_instance['title']);
		$instance['number'] = strip_tags($new_instance['number']);
		$instance['orderby'] = strip_tags($new_instance['orderby']);

		return $instance;
	}

	function widget( $args, $instance )
	{
		extract($args);
		$title = apply_filters( 'widget_title', $instance['title'] );
		$number = $instance['number'];
		$orderby = $instance['orderby'];

		if($orderby == 'xemnhieu'):
			//Tham số lấy ra các bài viết xem nhiều nhất
			$args = array(
				'posts_per_page'	=> $number,
				'post_type' 	=> 'post',
				'post_status'	=> 'publish',
				'meta_key'		=> 'views',
				'orderby'		=> 'meta_value_num',
				'order' 		=> 'DESC',
			);
		else:
			//Tham số lấy ra các bài viết mới nhất
			$args = array(
				'post_per_page'	=> $number,
				'post_type' 	=> 'post',
				'post_status'	=> 'publish',
				'orderby'		=> 'date',
				'order' 		=> 'DESC',
			);
		endif;

		$post = new WP_Query($args);

		ob_start();

		echo $before_widget;
		echo $before_title. $title . $after_title;

		if($post->have_posts())
		{
			while ($post->have_posts())
			{
				$post->the_post();?>
				<div class="item-most-view clearfix">
					<a href="<?php the_permalink(); ?>">
						<?php
						if(has_post_thumbnail()):
							the_post_thumbnail("thumb_sidebar");
						endif;
						?>
					</a>
					<?php the_title( sprintf( '<h3><a href="%s" rel="bookmark">', esc_url( get_permalink())), '</a></h3>' ); ?>
					<p><?php custom_length_excerpt(20); ?></p>
				</div>
			<?php
			}
		}

		echo $after_widget;

		$content = ob_get_contents();
		ob_end_clean();
		wp_reset_query();
		echo $content;
	}
}

